#ifndef __MY_DHT11_H
#define __MY_DHT11_H

#include "stm32f4xx_hal.h"

#define DHT11_PORT GPIOA
#define DHT11_PIN GPIO_PIN_0

#define DHT11_PULL_1 HAL_GPIO_WritePin(DHT11_PORT, DHT11_PIN, GPIO_PIN_SET)
#define DHT11_PULL_0 HAL_GPIO_WritePin(DHT11_PORT, DHT11_PIN, GPIO_PIN_RESET)

#define DHT11_ReadPin HAL_GPIO_ReadPin(DHT11_PORT, DHT11_PIN)

/**
 * ************************************************************************
 * @brief 存储传感器数据的结构体
 *
 *
 * ************************************************************************
 */
typedef struct
{
    uint8_t humi_int;    // 湿度的整数部分
    uint8_t humi_dec;    // 湿度的小数部分
    uint8_t temp_int;    // 温度的整数部分
    uint8_t temp_dec;    // 温度的小数部分
    uint8_t check_sum;   // 校验和

} DHT11_Data_TypeDef;

void Send(const uint8_t* data, uint8_t len);
void Send_Cmd_Data(DHT11_Data_TypeDef* DHT11_Data);

uint8_t DHT11_ReadData(DHT11_Data_TypeDef* DHT11_Data);

#endif
